package Learn;

import java.math.BigInteger;

public class BigIntegerDemo1 {
    //byte 1
    //short 2
    //int 4
    //long 8

    //public BigInteger (int num,Random rdm); 获取随即大正数  范围0-2的num次方-1
    //public BigInteger(String val) 获取指定的大整数
    //public BigInteger(String val，int radix)  把radix进制的val打印成十进制的形式

    //    public static BigInteger valueOf(long val) 静态方法获取Big Integer的对象 内部有优化
    public static void main(String[] args) {
        //必须是整数 不然会报错
        BigInteger bd2 = new BigInteger("1721782172182739127371928381928129831");
        System.out.println(bd2);

        BigInteger bd3 = new BigInteger("100", 2);
        System.out.println(bd3);

        //只能在long的取值范围内 对-16到16有了优化
        //提前把-16到16创建好 不会创建新的对象
        BigInteger bd15 = BigInteger.valueOf(1);
        BigInteger bd16 = BigInteger.valueOf(1);
        BigInteger bd17=new BigInteger("1");
        System.out.println(bd15==bd16);

        BigInteger bd4 = BigInteger.valueOf(100);
        System.out.println(bd4);
//    System.out.println(Long.MAX_VALUE);

        //对象一旦创建内部数据不会改变
        BigInteger bd5 = BigInteger.valueOf(1);
        BigInteger bd6 = BigInteger.valueOf(2);

        BigInteger result = bd5.multiply(bd6);
        System.out.println(result);

        BigInteger bd7 = BigInteger.valueOf(2);
        System.out.println(bd7==result);
        System.out.println(bd7==bd6);


    }

}
